package main;

import pojo.SimHash;
import service.Service;
import service.ServiceImpl;
import util.TextUtil;

import java.util.Scanner;

/**
 * @author tms
 * @Date 2023.9.13
 */
public class main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //输入格式
        System.out.println("请输入[论文原文的文件的绝对路径][抄袭版论文的文件的绝对路径][输出的答案文件的绝对路径](中间以空格隔开)：");
        //读取一行内容
        String str = scanner.nextLine();
        //以空格分割
        String[] strIn = str.trim().split(" ");
        //论文原文的文件的绝对路径
        String file0 = strIn[0];
        //抄袭版论文的文件的绝对路径
        String file1 = strIn[1];
        //输出的答案文件的绝对路径
        String file3 = strIn[2];
        String str0 = TextUtil.readFromText(file0);
        String str1 = TextUtil.readFromText(file1);
        Service service = new ServiceImpl();
        // 准备测试文章内容数据
        // 原始文章内容数据
        String originalcontent = str0;
        //开始计时
        long startTime = System.currentTimeMillis();
        // 计算相似度
        SimHash mySimHash_1 = new SimHash(str1, 64);
        mySimHash_1.setBigSimHash(service.simHashConstruct(mySimHash_1));
        SimHash mySimHash_2 = new SimHash(originalcontent, 64);
        mySimHash_2.setBigSimHash(service.simHashConstruct(mySimHash_2));
        Double similar = service.getSimilar(mySimHash_1, mySimHash_2);
        // 按相文章内容排序输出控制台
        String result = "相似度为：" + similar;
        System.out.println(result);
        //相似度输入指定文件中
        TextUtil.writeToText(result, file3);
        System.out.println("文件结果已写入");
        // 求得运算时长（单位：毫秒）
        long endTime = System.currentTimeMillis();
        long totalTime = endTime - startTime;
        System.out.println("本次运算总耗时" + totalTime + "毫秒");
    }
}
